Build: Provide Simple Support for MSVC 2012/2013
authorChun-wei Fan <fanchunwei@src.gnome.org>
Tue, 1 Jul 2014 08:17:43 +0000 (16:17 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Tue, 1 Jul 2014 08:17:43 +0000 (16:17 +0800)
As the Visual Studio 2012/2013 are only slightly different from the Visual
Studio 2010 projects, we can provide support for them by using scripts to
copy the Visual Studio 2010 projects, and update the specific parts as
necessary.

Thus, there would be little maintenance overhead for these as only the 2010
projects need to be kept up-to-date as a result.  This might change when we
do get the stack working with WinRT/Metro, but that's going to be another
totally different issue.

build/Makefile-newvs.am [new file with mode: 0644]
build/win32/Makefile.am
build/win32/vs11/Makefile.am [new file with mode: 0644]
build/win32/vs12/Makefile.am [new file with mode: 0644]
configure.ac

diff --git a/build/Makefile-newvs.am b/build/Makefile-newvs.am
new file mode 100644 (file)
index 0000000..e63b15f
--- /dev/null
@@ -0,0 +1,37 @@
+# Centralized autotools file
+# Create the Visual Studio 2012/2013 project files
+# from the Visual Studio 2010 project files
+
+# Author: Fan, Chun-wei
+# November 05, 2012
+
+# MSVC_SLN: name of root project
+
+MSVC_FORMAT_VER=$(shell echo $$(expr $(MSVC_VER) + 1))
+
+$(MSVC_SLN).sln: $(top_srcdir)/build/win32/vs10/$(MSVC_SLN).sln create_vcxproj copy_filters create_props
+       cat $(top_srcdir)/build/win32/vs10/$(MSVC_SLN).sln | sed 's/11\.00/$(MSVC_FORMAT_VER)\.00/g' | sed 's/2010/$(MSVC_VER_LONG)/g' > $(top_builddir)/build/win32/vs$(MSVC_VER)/$(MSVC_SLN).sln
+
+README.txt: $(top_srcdir)/build/win32/vs10/README.txt
+       cat $(top_srcdir)/build/win32/vs10/README.txt | sed 's/vs10/vs$(MSVC_VER)/g' | sed 's/VS10/VS$(MSVC_VER)/g' > $(top_builddir)/build/win32/vs$(MSVC_VER)/README.txt
+
+create_vcxproj:
+       for F in `(cd $(top_builddir)/build/win32/vs10 && ls *.vcxproj)`; do \
+               case $$F in \
+                       *)      cat $(top_builddir)/build/win32/vs10/$$F | sed 's/v100/v$(MSVC_VER)0/g' > $(top_builddir)/build/win32/vs$(MSVC_VER)/$$F \
+                       ;; \
+               esac; \
+       done
+
+create_props:
+       for F in `(cd $(top_builddir)/build/win32/vs10 && ls *.props)`; do \
+               case $$F in \
+                       *)      cat $(top_builddir)/build/win32/vs10/$$F | sed 's/<VSVer>10<\/VSVer>/<VSVer>$(MSVC_VER)<\/VSVer>/g' > $(top_builddir)/build/win32/vs$(MSVC_VER)/$$F \
+                       ;; \
+               esac; \
+       done
+
+copy_filters:
+       cp  $(top_srcdir)/build/win32/vs10/*.vcxproj.filters $(top_builddir)/build/win32/vs$(MSVC_VER)/
+
+
index 0cc71e82a212f14657d5359a9b83a18e91fa3e21..b72d35d9fecbfef2f87dee6e48f6551273ea0d4d 100644 (file)
@@ -1,8 +1,10 @@
 include $(top_srcdir)/Makefile.decl
 
-SUBDIRS = \
-       crypt \
-       vs9  \
-       vs10
+SUBDIRS =      \
+       crypt   \
+       vs9     \
+       vs10    \
+       vs11    \
+       vs12
 
 -include $(top_srcdir)/git.mk
diff --git a/build/win32/vs11/Makefile.am b/build/win32/vs11/Makefile.am
new file mode 100644 (file)
index 0000000..48d7bf5
--- /dev/null
@@ -0,0 +1,43 @@
+include $(top_srcdir)/Makefile.decl
+
+EXTRA_DIST +=  \
+       README.txt      \
+       gtk+.sln        \
+       gtk-prebuild.vcxproj    \
+       gdk-win32.vcxproj       \
+       gdk-win32.vcxproj.filters       \
+       gdk.vcxproj     \
+       gdk.vcxproj.filters     \
+       gtk.vcxproj     \
+       gtk.vcxproj.filters     \
+       gtk3-demo.vcxproj       \
+       gtk3-demo.vcxproj.filters       \
+       gtk3-demo-application.vcxproj   \
+       gtk3-demo-application.vcxproj.filters   \
+       gtk-inspector.vcxproj   \
+       gtk-inspector.vcxproj.filters   \
+       gailutil.vcxproj        \
+       gailutil.vcxproj.filters        \
+       install.vcxproj \
+       broadwayd.vcxproj       \
+       broadwayd.vcxproj.filters       \
+       gdk-broadway.vcxproj    \
+       gdk-broadway.vcxproj.filters    \
+       gtk-build-defines.props \
+       gtk-copy-gdk-broadway.props     \
+       gtk-gen-srcs.props      \
+       gtk-ignore-broadway.props       \
+       gtk-install.props       \
+       gtk-version-paths.props
+
+DISTCLEANFILES = $(EXTRA_DIST)
+
+MSVC_SLN = gtk+
+
+MSVC_VER = 11
+
+MSVC_VER_LONG = 2012
+
+include $(top_srcdir)/build/Makefile-newvs.am
+
+-include $(top_srcdir)/git.mk
diff --git a/build/win32/vs12/Makefile.am b/build/win32/vs12/Makefile.am
new file mode 100644 (file)
index 0000000..ec7f812
--- /dev/null
@@ -0,0 +1,43 @@
+include $(top_srcdir)/Makefile.decl
+
+EXTRA_DIST +=  \
+       README.txt      \
+       gtk+.sln        \
+       gtk-prebuild.vcxproj    \
+       gdk-win32.vcxproj       \
+       gdk-win32.vcxproj.filters       \
+       gdk.vcxproj     \
+       gdk.vcxproj.filters     \
+       gtk.vcxproj     \
+       gtk.vcxproj.filters     \
+       gtk3-demo.vcxproj       \
+       gtk3-demo.vcxproj.filters       \
+       gtk3-demo-application.vcxproj   \
+       gtk3-demo-application.vcxproj.filters   \
+       gtk-inspector.vcxproj   \
+       gtk-inspector.vcxproj.filters   \
+       gailutil.vcxproj        \
+       gailutil.vcxproj.filters        \
+       install.vcxproj \
+       broadwayd.vcxproj       \
+       broadwayd.vcxproj.filters       \
+       gdk-broadway.vcxproj    \
+       gdk-broadway.vcxproj.filters    \
+       gtk-build-defines.props \
+       gtk-copy-gdk-broadway.props     \
+       gtk-gen-srcs.props      \
+       gtk-ignore-broadway.props       \
+       gtk-install.props       \
+       gtk-version-paths.props
+
+DISTCLEANFILES = $(EXTRA_DIST)
+
+MSVC_SLN = gtk+
+
+MSVC_VER = 12
+
+MSVC_VER_LONG = 2013
+
+include $(top_srcdir)/build/Makefile-newvs.am
+
+-include $(top_srcdir)/git.mk
index 85041e9e4d7e65d00c2a2fdbe30699c295faa499..9c09aa8581ea653e206f113468d557cd06b88022 100644 (file)
@@ -1873,6 +1873,8 @@ build/win32/Makefile
 build/win32/crypt/Makefile
 build/win32/vs9/Makefile
 build/win32/vs10/Makefile
+build/win32/vs11/Makefile
+build/win32/vs12/Makefile
 gdk/Makefile
 gdk/broadway/Makefile
 gdk/x11/Makefile